/* recycle.h : Memory Recycler ! */
 
#ifndef _RECYCLE_H_
#define _RECYCLE_H_
 
typedef struct s_store *store;
 
// cree et initialise le recycleur
// cell_size: la taille des blocs alloues
// capacity: le nombre maximal de bloc allouable
store   Make(size_t cell_size, size_t capacity);
 
// renvoie un bloc disponible
void   *get(store s);
 
// rend un bloc au recycleur
void    release(store s, void* c);
 
// tous les blocs du recycleur sont maintenant disponible
void    release_all(store s);
 
// destruction complete du recycleur
void    destroy(store s);
 
#endif
